package com.blog.mapper;

import com.blog.dto.cond.CommentCondition;
import com.blog.model.Comment;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;

import java.util.List;

/**
 * 评论持久层
 *
 * @author wmb
 *
 * @since 2021-2-8
 */
@Mapper
@Repository("commentMapper")
public interface CommentMapper {

    /**
     * 根据条件获取评论列表
     *
     * @param commentCondition
     *
     * @return
     */
    List<Comment> getCommentsByCondition(CommentCondition commentCondition);

    /**
     * 获取文章数量
     *
     * @return
     */
    Long getCommentsCount();

    /**
     * 根据文章编号获取评论列表
     *
     * @param cid
     *
     * @return
     */
    List<Comment> getCommentsByCid(@Param("cid") Integer cid);

    /**
     * 删除评论
     *
     * @param id
     *
     * @return
     */
    void deleteCommentById(Integer id);

    /**
     * 新增评论
     *
     * @param comment
     *
     * @return
     */
    void saveComment(Comment comment);

    /**
     * 根据文章编号获取评论列表
     *
     * @param id
     *
     * @return
     */
    Comment getCommentById(Integer id);

    /**
     * 更新评论的状态
     *
     * @param id
     * @param status
     *
     * @return
     */
    void updateCommentStatus(@Param("id") Integer id, @Param("status") String status);
}
